// 자기참조구조체 : 나 자신을 참조하는 구조체
#include <stdio.h>
struct ArrayList
{
    char Name[25]; // 이름
    struct ArrayList *Next; // 나를 참조
};
void main(void) {
    // 시작포인터 생성
    struct ArrayList *p; // 시작 포인터 
    // 데이터 저장
    struct ArrayList al1 = {"홍길동"};
    struct ArrayList al2 = {"백두산"};
    struct ArrayList al3 = {"임꺽정"};
    // 연결
    al1.Next = &al2; // 2번째 ArrayList형 변수의 시작주소
    al2.Next = &al3; 
    al3.Next = NULL; // 구조체 종결(\0);
    p = &al1; // 시작포인터에 홍길동 리스트 연결
    // 탐색1
    printf("%s\n", p->Name); // 홍길동
    p = p->Next; // 다음 주소로 이동
    printf("%s\n", p->Name); // 백두산
    p = p->Next; // 다음 주소로 이동
    printf("%s\n", p->Name); // 임꺽정
    p = p->Next; // NULL 
    printf("%s\n", p->Name); 
    // 탐색2
    p = &al1; // 시작점 재설정 
    while (p != NULL) {
        printf("%s \n", p->Name); // 이름출력
        p = p->Next; // 다음주소기입
    }
}

 

Comments


Comments are closed